import base64
import os

# 示例：读取图片文件并转换为base64格式
def get_avatar_file_example():
    try:
        # 这里使用一个示例图片文件，你需要替换为实际的图片路径
        image_path = '/Users/edwardjin/Desktop/logo.png'  # 支持jpg、png等格式
        
        # 读取图片文件
        with open(image_path, 'rb') as f:
            # 读取二进制数据
            image_data = f.read()
            
            # 可选：转换为base64格式（如果API需要）
            image_base64 = base64.b64encode(image_data).decode('utf-8')
            
            print(f'图片大小：{len(image_data)} 字节')
            print('图片已成功读取并转换')
            
            # 确保output目录存在
            output_dir = os.path.join(os.path.dirname(__file__), 'output')
            os.makedirs(output_dir, exist_ok=True)
            
            # 保存二进制数据到文件
            output_binary_path = os.path.join(output_dir, 'avatar_binary')
            with open(output_binary_path, 'wb') as binary_file:
                binary_file.write(image_data)
            print(f'二进制数据已保存到: {output_binary_path}')
            
            # 保存base64数据到文件
            output_base64_path = os.path.join(output_dir, 'avatar_base64.txt')
            with open(output_base64_path, 'w') as base64_file:
                base64_file.write(image_base64)
            print(f'Base64数据已保存到: {output_base64_path}')
            
            return {
                'binary_data': image_data,  # 二进制格式
                'base64_data': image_base64,  # base64格式
                'binary_file_path': output_binary_path,
                'base64_file_path': output_base64_path
            }
            
    except FileNotFoundError:
        print('错误：找不到图片文件')
        return None
    except Exception as e:
        print(f'错误：{str(e)}')
        return None

# 使用示例
if __name__ == '__main__':
    result = get_avatar_file_example()
    if result:
        print('\n可以使用以下两种格式之一：')
        print('1. 二进制数据 - 适用于multipart/form-data格式上传')
        print('2. Base64编码 - 适用于JSON格式上传')
        print(f'文件保存位置：\n- 二进制文件：{result["binary_file_path"]}\n- Base64文件：{result["base64_file_path"]}')
        